Avoid calling g_object_ref on NULL
authorMatthias Clasen <mclasen@redhat.com>
Sat, 7 Mar 2015 22:48:11 +0000 (17:48 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 7 Mar 2015 22:48:11 +0000 (17:48 -0500)
gtk_widget_set_visual() allows NULL for the visual, so be
careful ot to ref it unconditionally.

gtk/gtkwidget.c

index 715105d9a7dc0b6a30f860654b4984fa60326292..d9c2a9c6fba67d7dc8bfd917fa3d8432f98a2f09 100644 (file)
@@ -11445,7 +11445,7 @@ gtk_widget_get_ancestor (GtkWidget *widget,
 /**
  * gtk_widget_set_visual:
  * @widget: a #GtkWidget
- * @visual: visual to be used or %NULL to unset a previous one
+ * @visual: (allow-none): visual to be used or %NULL to unset a previous one
  *
  * Sets the visual that should be used for by widget and its children for
  * creating #GdkWindows. The visual must be on the same #GdkScreen as
@@ -11461,14 +11461,13 @@ gtk_widget_set_visual (GtkWidget *widget,
 {
   g_return_if_fail (GTK_IS_WIDGET (widget));
   g_return_if_fail (visual == NULL || GDK_IS_VISUAL (visual));
+
   if (visual)
-    {
-      g_return_if_fail (gtk_widget_get_screen (widget) == gdk_visual_get_screen (visual));
-    }
+    g_return_if_fail (gtk_widget_get_screen (widget) == gdk_visual_get_screen (visual));
 
   g_object_set_qdata_full (G_OBJECT (widget),
                            quark_visual,
-                           g_object_ref (visual),
+                           visual ? g_object_ref (visual) : NULL,
                            g_object_unref);
 }